<?php

/**
 * Posts model
 * 
 * @author    Kanat Gailimov, http://gailimov.info
 * @copyright Copyright (c) Kanat Gailimov (http://gailimov.info) 2011
 */

class Application_Model_DbTable_Posts extends Zend_Db_Table_Abstract
{
    /**
     * Db table name
     * 
     * @var string
     */
    protected $_name = 'zf_posts';

    /**
     * Get post by ID
     * 
     * @param  int   $id ID of post
     * @return array
     */
    public function getById($id)
    {
        $id = intval($id);
        $row = $this->fetchRow('id = ' . $id);
        if (!$row) {
            throw new Exception('Ошибка! Пост не выбран из базы данных!');
        }
        return $row;
    }
	
	  /**
     * Get by category's ID
     * 
     * @param  int   $categoryId ID of category
     * @return array
     */
    public function getByCategoryId($categoryId)
    {
        $categoryId = intval($categoryId);
        // Формируем условие запроса
        $select = $this->select()->where('category_id = ?', $categoryId)
                                 ->order('created_at DESC')
                                 ->order('id DESC');
        // Выполняем запрос
        $row = $this->fetchAll($select);
        if (!$row) {
            throw new Exception('Ошибка! Категория не выбрана из базы данных!');
        }
        return $row->toArray();
    }
    
    /**
     * get all posts
     * 
     * @return Zend_Db_Rowset 
     */
    public function getAllPosts()
    {
        $select = $this->select()
                       ->order('id DESC');
        
        return $this->fetchAll($select);
    }
}
